package edu.zju.gis.dbfg.common.base;


import edu.zju.gis.dbfg.common.Page;

import java.io.Serializable;
import java.util.List;

/**
 * Service接口基类
 *
 * @param <T>
 * @param <ID>
 * @author Hu
 */
public interface BaseService<T, ID extends Serializable> {

    /**
     * 根据查询条件获取列表
     * @return
     */
    public Page<T> search(BaseFilter params, Page page);


    /**
     * 通过主键查询实体
     *
     * @param pk
     * @return T
     */
    public T select(ID pk);


    /**
     * 插入/更新实体
     *
     * @param t
     */
    public int save(T t);

    /**
     * 更新实体
     *
     * @param t
     */
    public int update(T t);


    /**
     * 通过主键删除实体
     *
     * @param id
     * @return
     */
    public int delete(ID id);

    /**
     * 批量删除实体
     * @param ids
     * @return
     */
    public int delete(List<ID> ids);

    /**
     * 判断实体是否已经存在
     *
     * @param id
     * @return
     */
    public boolean isExist(ID id);

}
